1. Field
The disclosed embodiments relate to techniques for synchronizing clocks in computer systems. More specifically, the disclosed embodiments relate to techniques for synchronizing clocks between computer system components which are connected via an interface with an intermittent clock signal.
2. Related Art
A modern computer system typically includes a motherboard and a set of peripheral components connected to the motherboard via a variety of interfaces. For example, a Serial Advanced Technology Attachment (SATA) interface may facilitate data transfer between a storage device (e.g., hard disk drive, optical drive, etc.) and the motherboard, while a Peripheral Component Interconnect Express (PCIe) bus may enable communication between a central-processing unit (CPU) on the motherboard and a graphics-processing unit (GPU) on a graphics card.
Moreover, multiple clock signals may be used to control the execution of various interface-connected components within the computer system. For example, a 100 MHz system clock may synchronize the execution of processors, memory, and/or integrated components on the motherboard, while a separate GPU clock may synchronize graphics processing and rendering on the graphics card. Because the motherboard and graphics card are controlled by different clock signals, signals may cross clock domains (e.g., graphics-rendering data and commands) as they are transmitted between the motherboard and graphics card (e.g., over the PCIe bus).
To facilitate communication between such interface-connected components, sample-rate conversion may be performed at each clock domain crossing in the computer system. For example, sample-rate conversion may be performed during multimedia playback to synchronize an audio stream from the CPU with a video stream from the GPU. However, sample-rate conversion may require a significant amount of processing (e.g., by the CPU and/or another processor) and thus may increase the power consumption of the computer system. In turn, higher power consumption increases the cost of operating the computer system and/or reduces battery life in a portable computer system such as a laptop computer.
Hence, what is needed is a mechanism for facilitating synchronization between interface-connected components in a computer system without the overhead associated with sample-rate conversion of signals transmitted between the components.